<?php

/**
 * Servicio
 * @Servicio
 * GenProg Lenguaje de Modelos
 *
 *
 * @author      Carlos Peña <crash.madover@gmail.com>
 * @package     application.model.sis.nomina
 * @copyright   (c) 2013, GenProg
 * @version     v 1.0
 */
class Servicio {
	
    // -------------------------------------------------------------------------------------

    /**
     * Prefijo de los Campos
     *
     * @access    public
     * @var       string
     */
    public $prefijo = 'SER';

    // -------------------------------------------------------------------------------------

    
    /**
     * Nombre de la Tabla en la Base de Datos
     *
     * @access    public
     * @var       string
     */
    public $tabla = 'K_TServicio';

    // --------------------------------------------------------------------------------------

    /**
     * Forma de Pago
     * 
     * @access    public
     * @var       string 
     */
    public $fpago = array('0' => 'Seleccionar Forma de Pago', '1' => 'Efectivo', 
    '2' => 'Tarjeta Debito', '3' => 'Tarjeta de Credito', '4' => 'Cheque', '5' => 'Cobro en destino', '6' => 'Por Cobrar', '7' => 'Contratado', '8' => 'Prepagado');

    // -------------------------------------------------------------------------------------

    /**
     * Campos del Sistema y Base de datos
     *
     * @access    public
     * @var       array()
     */
    public $struc = array(//
        'cmp' => array(//
            'oid' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '2', 'incremento' => 1, //
                'comentario' => 'Identificador', 'visible' => 'oculto'), //
            'nomb' => array('tipo' => 'VARCHAR', 'comentario' => 'Nombre del Banco', 'longitud' => '64', 'accion' => 'consulta'), //
        ),
        'join' => array(//
            //'rservicio' => array('oidFKS' => 'oid', 'relacion' => 'muchos-a-uno', 'dtd' => 'Pagos'), //Tiene muchos servicios
        )
    );

    // -------------------------------------------------------------------------------------

    /**
     * Descripcion del modelo
     * 
     * @access    public
     * @var       string
     */
    public $dtd = 'Servicios';

    // -------------------------------------------------------------------------------------

    /**
     * Permite crear botones asignados a la Interfaz
     * C = Crear, R = Leer (Buscar), U = Actualizar (Modificar), D = Eliminar
     *
     * @access public
     * @var string
     */
    public $botones = 'CRUD';

    function GUI(Orm $Orm = null) {
        
        $frm[1] = array('etiqueta' => 'Indique Número de Piezas', 'id' => 'pieza', 'tipo' => 'numero', 'requerido' => 1, 'estilo' => 'width:210px', 'onblur' => 'Calcular()');       
        $frm[2] = array('etiqueta' => 'Base Imponible', 'id' => 'base', 'tipo' => 'numero', 'requerido' => 1, 'estilo' => 'width:300px');
        $frm[3] = array('etiqueta' => 'Impuesto de Valor Agregado', 'id' => 'iva', 'tipo' => 'numero', 'requerido' => 1);
        $frm[4] = array('etiqueta' => 'Franqueo Postal', 'id' => 'fran', 'tipo' => 'numero', 'requerido' => 1);
        $frm[5] = array('etiqueta' => 'Monto Total', 'id' => 'monto', 'tipo' => 'numero', 'requerido' => 1);


        $frm[6] = array('etiqueta' => 'Forma de Pago', 'id' => 'fpago', 'tipo' => 'combo', 'elementos' => $this->fpago, 'onchange' => 'Calcular_Vuelto(this)', 'requerido' => 1, 'estilo' => 'width:300px');

        $obj['php'] = array('campos' => $frm, 'titulo' => 'Costo del Servicio');
        $obj['json'] = json_encode($obj['php']);
        return (object) $obj;
    }

    function Insertar() {
        
    }
    

    /**
     * Listar Precios
     */
    function LPrecios(Orm $orm = null, $arr = array()) {
    	$i = 0;
    	$oCab = array();
    	$oFil = array();
    	$oCab[1] = array("titulo" => "oid", "atributos" => "width:60px", "oculto" => 1);
    	$oCab[2] = array("titulo" => "Hasta (gramos)", "atributos" => "width:260px");
    	$oCab[3] = array("titulo" => "Base", "atributos" => "width:100px","tipo"=>"texto");
    	$oCab[4] = array("titulo" => "Iva", "atributos" => "width:100px","tipo"=>"texto");
    	$oCab[5] = array("titulo" => "Franqueo", "atributos" => "width:100px","tipo"=>"texto");
    	$oCab[6] = array("titulo" => "Monto", "atributos" => "width:100px","tipo"=>"texto");
    	$oCab[7] = array(//
    			'titulo' => '#',
    			'mantiene' => 1, // Que la fila no se elimine
    			'tipo' => 'bimagen', //Ruta Imagen
    			'metodo' => 2,
    			'parametro' => '1,2,3,4,5,6',
    			'ruta' => IMG . 'aceptar.png',
    			'funcion' => 'Modifica_Precio',
    			'atributos' => "width:8px"
    	);
    	 
    	if (isset($orm)) {
    		$rs = $orm->GPQL('RServicio')->Donde_Columnas('RSE_oidFKS =' .  $arr['oid'])->Listar_Donde()->Ejecutar();
    		foreach ($rs['rs'] as $sC => $sV) {
    			$oFil[++$i] = array(//
    					'1' => $sV->RSE_oidFKS,
    					'2' => $sV->RSE_hasta,
    					'3' => $sV->RSE_base,
    					'4' => $sV->RSE_iva,
    					'5' => $sV->RSE_fran,
    					'6' => $sV->RSE_monto,
    					'7' => ''
  		
    			);
    		}
    	}
    
    	$contratos = array("Cabezera" => $oCab, "Cuerpo" => $oFil, "Origen" => "json", "titulo" => "Listar Precios de servico: "+$arr['nombre']);
    	return json_encode($contratos);
    }

}

?>
